package com.yiren.dbaa.module.practice_set.map.contract;

import com.yiren.backstage.currency.entity.MapEntity;
import com.yiren.backstage.currency.entity.SiteEntity;
import com.yiren.dbaa.currency.api.CommonCallBack;
import com.yiren.dbaa.net.bean.OSSResultBean;


import java.util.List;

/**
 * @author lwb
 * @date : 2022/11/24 14:41
 * @description: 地图首页
 */
public interface MapHomeContract {

    interface Presenter {

        /**
         * 加载地图首页列表
         */
        void loadMapList(View view);

        /**
         * 下载考场地图
         * @param map
         */
        void loadSiteMap(MapEntity map,View view);

        /**
         * 删除地图数据
         * @param map
         * @param callBack
         */
        void deleteMap(MapEntity map, CommonCallBack callBack);
    }

    interface Model {

        /**
         * 从服务器获取已公开地图
         * @param id 账号id
         * @param isPublic 是否已公开
         */
        void getMapFromServer(String id,boolean isPublic, CommonCallBack callBack);

        /**
         * 合并线路数据
         *
         * @param localMaps
         * @param serverMaps
         * @return
         */
        List<MapEntity> lineHomeDataMerge(List<MapEntity> localMaps, List<MapEntity> serverMaps);

        /**
         * 下载考场地图
         *
         * @param siteCode
         * @param partnerId
         * @param version
         */
        void downloadSiteMap(String siteCode, int partnerId, float version, CommonCallBack callBack);

        /**
         * 获取考场数据操作目录授权
         */
        void getDataDirAuth(CommonCallBack callBack);

        /**
         * 同步上传考场地图记录到服务器
         *
         * @param ossResultBean
         * @param zipFileName
         * @param dataZipFile
         */
        void uploadSiteMap(OSSResultBean ossResultBean, int userId, String siteCode, String zipFileName, String dataZipFile, CommonCallBack callBack);
    }

    interface View {

        /**
         * 显示地图
         */
        void showMap(List<MapEntity> siteList);


        void refreshMapList();

    }

}
